perm filename ZONKER.PAL[AL,HE]1 blob
sn#308100 filedate 1977-09-30 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 This file gives the definitions for using the zonker. When loaded it
C00005 ENDMK
C⊗;
COMMENT ⊗ This file gives the definitions for using the zonker. When loaded it
also sets up a "standard" zonker configuration for the AL runtime
system.⊗
;ZONKER OPCODES FOR DIAGNOSTIC REGISTER
ZREAD=0
ZREAD4=1
ZWRITE=2
ZWRIT4=3
ZDBOX0=0
ZDBOX1=100
ZDBOX2=200
ZDBOX3=300
ZDHOG=1000
;ZONKER IO LOCATIONS
ZCSR=167400
ZDIAG=167402
ZDCYC=167404
ZMRAM=167440
;Zonker Control Status Register (ZCSR)
ZRESET = 2
ZONKON = 4
;ZONKER MAP RAM DEFINITIONS
ZHOG=200
ZCYC=100 ;Valid mapping
ZBOX0=0
ZBOX1=10
ZBOX2=20
ZBOX3=30
COMMENT ⊗ Now initialize the zonker so zonker box 2 is mapped as follows:
zonker address unibus address
0 - 277 777 200 000 - 477 777 (48K)
300 000 - 377 777 600 000 - 677 777 (16K)
(this will be contiguous when the "crock" memory goes away) ⊗
temp1 == . ;Save the location counter
temp2 == %OFFSE ;Save the current offset
.OFFSET -600000 ;We want to use real physical addresses here.
. = ZCSR
ZRESET ;Reset zonker
. = ZMRAM
.REPT 20
.WORD 0 ;Clear zonker mapping registers
.ENDR
. = ZMRAM + 10 ;Unibus address 200 000
.REPT 6
ZCYC + ZBOX1 + .RPCNT ;Map next 8K of zonker box 1
.ENDR
. = ZMRAM + 30 ;Unibus address 600 000
ZCYC + ZBOX1 + 6 ;Map last 16K of zonker box 1
ZCYC + ZBOX1 + 7
. = ZCSR
ZONKON ;Turn on the zonker!
.OFFSET temp2 ;Restore Offset
. = temp1 ;Restore Location Counter